410 REM Section to print a text to the screen or the printer
420 CLS: PRINT "What's the name of the document ("; DOC$;") ";:INPUT TEMDOC$
430 IF TEMDOC$ <>"" THEN DOC$ = TEMDOC$+".TXT"
440 PRI = 0: GOSUB 1380
450 INPUT "Do you want to print this (Y/N)"; PRI$: PRINT
460 IF PRI$ = "Y" OR PRI$ = "y" THEN PRI = 1: GOSUB 740 'Sets printer styles
470 IF DOC$ = "Envelope.TXT" OR DOC$ = "envelope.TXT" THEN DOC$ = "ENVELOPE.TXT"
480 IF PRI = 1 AND DOC$ = "ENVELOPE.TXT" THEN LPRINT CHR$(27);"8"; 'Disables paper out for envelopes
490 OPEN DOC$ AS #1 LEN = 80
500 FIELD #1, 1 AS N$, 78 AS A$
510 IF PRI = 1 AND (EMP$ = "Y" OR EMP$ = "y") THEN LPRINT CHR$(27) "E"; ELSE IF PRI = 1 THEN LPRINT CHR$(27) "F";
520 IF PRI = 1 AND TIT = 1 THEN LPRINT DOC$,TIME$,DATE$: LPRINT: LPRINT
530 I = 1
540 GET #1, I
550 IF LEFT$(A$,1) = "%" THEN 650 'Checks for the end of file mark
560 IF I/20 = INT(I/20) AND PRI<>1 THEN PRINT: PRINT "Press any key to continue" ELSE 600
570 GO$ = INKEY$: IF GO$ = "" THEN 570
580 IF PRI = 1 THEN LPRINT CHR$(27);"F";
590 PRINT: PRINT:
600 PRINT A$
610 IF PRI = 1 THEN LPRINT A$ ELSE 640
620 IF PAG = 1 AND I/55 = INT(I/55) THEN LPRINT CHR$(12); 'Fifty five lines per page
630 IF SPA$="d" OR SPA$ = "D" THEN LPRINT 'Double spacing
640 I = I + 1: GOTO 540
650 IF PAG = 1 THEN LPRINT CHR$(12)
660 PRINT: LOCATE 24,1 : PRINT "Press any key to go back to main menu"
670 GO$ = INKEY$: IF GO$ = "" THEN 670
680 CLOSE #1: CLS: GOTO 110 'Back to main menu
690 REM Section to list the files on this disk
700 CLS:FILES
710 LOCATE 23,10: PRINT "Press any key to return to main menu"
720 GO$ = INKEY$: IF GO$ = "" THEN 720
730 CLS: GOTO 110
740 REM Subroutine to set the desired printer output
750 LPRINT CHR$(27);CHR$(64);
760 INPUT "Single (s) or double (d) space";SPA$
770 INPUT "Emphasized print (Default is Yes)"; EMP$
780 INPUT "Pagination (Default is Yes)"; PAG$
790 INPUT "Italics (Default is NO)"; IT$
800 INPUT "Double strike (Default is NO)";ST$
810 INPUT "Title, date and time (Defaut is No)";TIT$
820 IF PAG$ = "" OR PAG$ = "Y" OR PAG$ = "y" THEN PAG = 1 ELSE PAG = 0
830 IF TIT$ = "Y" OR TIT$ = "y" THEN TIT = 1 ELSE TIT = 0
840 IF IT$ = "y" OR IT$ = "Y" THEN LPRINT CHR$(27);"4"; ELSE LPRINT CHR$(27);"5";
850 IF ST$ = "Y" OR ST$ = "y" THEN LPRINT CHR$(27);"G"; ELSE LPRINT CHR$(27);"H";
860 IF EMP$ <> "n" OR EMP$ <> "N" THEN EMP$ = "Y"
870 CLS:RETURN
880 REM Section to edit the text
890 CLS:PRINT "Which file do you want to edit ? "; DOC$;: INPUT TEMDOC$
900 IF TEMDOC$<>"" THEN DOC$ = TEMDOC$+".txt":
910 GOSUB 1380
920 OPEN DOC$ AS #1 LEN = 80
930 FIELD #1, 1 AS N$, 78 AS A$
940 KEY (1) ON 'To end editing
950 KEY (5) ON ' To delete a line
960 ON KEY(1) GOSUB 1110
970 ON KEY(5) GOSUB 1160
980 GET #1,1: IF ASC(A$) = 0 THEN GET #1,2: IF ASC(A$) = 0 THEN CLOSE: KILL DOC$: GOTO 1140
990 INPUT "Which line do you want to start with ";LIN
1000 IF LIN = 0 THEN LIN = 1
1010 CLS: COLOR 0, 7 :PRINT "Editor";,"Press ENTER to RETAIN present line.":PRINT, "Enter an F1 to END edit, or an F5 to DELETE a line": PRINT, "Don't forget to leave a ` % ' at the end of the file " :
1020 PRINT , "Go to the END of the line and hit ENTER if you make changes."
1030 PRINT:PRINT: COLOR 7,0
1040 GET #1, LIN
1050 PRINT A$;: LOCATE ,1
1060 LINE INPUT TEMP$: IF TEMP$ = "" THEN TEMP$ = A$
1070 LSET A$ = TEMP$
1080 PUT #1, LIN
1090 LIN = LIN + 1: GOTO 1040
1100 CLOSE: CLS: GOTO 110
1110 REM Subroutine called by F1 to end editing
1120 CLS: LOCATE 12,25:PRINT "Ending Edit"
1130 IF TEMP$ = "" THEN PUT #1, LIN ELSE LSET A$ = TEMP$: PUT #1, LIN
1140 KEY (1) OFF: KEY(5) OFF :CLOSE:CLS:GOTO 110
1150 RETURN
1160 REM Subroutine to delete a line
1170 LONG = 150
1180 FOR I = LIN TO LONG-1
1190 GET #1, I+1
1200 PUT #1, I
1210 IF LEFT$(A$,1) = "%" THEN 1230
1220 NEXT I
1230 VER = CSRLIN -1: LOCATE VER,1: KEY(5) ON:
1240 RETURN 1040
1250 REM Some subroutines for errors and to end writing on F1
1260 LONG = LOF(1): LONG = LONG/128
1270 CLOSE: LOCATE 22, 1: PRINT "Press any key to go back to the main menu"
1280 KEY (1) OFF :RETURN 100
1290 CLS: LOCATE 12,20: PRINT "That's not a good name. Try again"
1300 FOR I = 1 TO 1000: NEXT I
1310 CLOSE: GOTO 410
1320 LSET N$ = STR$(Q): LSET A$ = TEMP$
1330 PUT #1, Q
1340 LSET A$ = "%": PUT #1, Q+1
1350 CLS: LOCATE 10,10: PRINT "Going back to main menu": CLOSE
1360 FOR I = 1 TO 1500: NEXT I
1370 GOTO 110
1380 REM Subroutine to identify nonexistant files
1390 ON ERROR GOTO 1430
1400 IF DOC$ = "" THEN LOCATE 10,10: COLOR 15,0: PRINT "You didn't name a file": FOR I = 1 TO 1000: NEXT I: COLOR 7,0: GOTO 110
1410 NAME DOC$ AS DOC$
1420 'This statement will cause an error
1430 X = ERR: RESUME 1440
1440 ON ERROR GOTO 0
1450 IF X = 53 THEN LOCATE 10,10: COLOR 15,0: PRINT "File not found. Going back to main menu ": DOC$ = "": FOR I = 1 TO 1500: NEXT I :COLOR 7,0: GOTO 110